package cn.kgc.servlet;

import cn.kgc.entity.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * @Author: 课工场
 * @Version: v1.0  2023/5/11
 * @Description:
 */
@WebServlet("/usr")
public class NewUserServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        // 用户的信息列表
        User user = new User().setId(1).setUsername("tom").setPassword("123456").setAge(20);
        List<User> users = Arrays.asList(user, user, user, user);

        // user.jsp  跳转页面 jsp  java serve pages   1.转发  请求转发   2.重定向  浏览器的行为

        /**
         *  总结：转发和重定向的区别
         *
         *                  转发                    重定向
         *  1.请求次数     一次请求                   两次请求
         *  2.数据共享     request实现数据共享        session实现数据共享
         *  3.行为        服务器内部的行为            浏览器行为
         *
         */


        // 设置携带的参数
        req.setAttribute("users", users);
        req.setAttribute("user",user);

        // 会话对象   session
        //HttpSession session = req.getSession();
        //String id = session.getId();
        //System.out.println("id = " + id);
        //session.setAttribute("users",users);
        //session.setAttribute("user",user);


        // 重定向 实现页面的跳转  req.getContextPath()  获取项目的虚拟路径
        //resp.sendRedirect(req.getContextPath()+"/user2.jsp");

        // 转发 实现页面跳转
        req.getRequestDispatcher("/user2.jsp").forward(req,resp);


        //  http://localhost:8080/javaweb/user.jsp  http请求是无状态的请求
    }
}
